package com.cxs.service;

import com.cxs.dto.UserSearchDTO;
import com.cxs.exception.HospitalException;
import com.cxs.pojo.Menu;
import com.cxs.pojo.User;
import com.cxs.vo.MenuVO;
import com.cxs.vo.UserRoleVO;
import com.github.pagehelper.PageInfo;

import java.util.List;

/*
 * @Author:cxs
 * @Date:2021/10/15  11:46
 * @Version 1.0
 * @Motto:放下杂念,只为迎接明天更好的自己
 * */
public interface UserService {

    /**
     * 根据用户名查询用户
     * @param loginName
     * @return
     */
    User findUserByUsername(String loginName);


    /**
     * 根据用户获得权限菜单列表
     * @param userId
     * @return
     */
    List<MenuVO> menuList(Integer userId);

    /**
     * 条件模糊查询 + 分页
     * @param searchDTO
     * @param pageNo
     * @param limit
     * @return
     */
    PageInfo<User> findUserBySearch(UserSearchDTO searchDTO, Integer pageNo, Integer limit);

    /**
     * 用户信息添加
     * @param user
     */
    void addUser(User user);

    /**
     * 根据用户id查询角色信息
     * @param userid
     * @return
     */
    List<UserRoleVO> getinitUserRoleInfo(Integer userid);

    /**
     * 给用户授予角色
     * @param userid
     * @param ids
     */
    void updateUserRole(Integer userid, List<Integer> ids);

    /**
     * 删除用户
     * @param userId
     */
    void delete(Integer userId);

    /**
     * 修改用户
     * @param user
     */
    void update(User user);

    /**
     * 重置密码
     * @param userId
     */
    void initPwd(Integer userId);

}
